查看原文
其他

简单的Python脚本,实现ssh登录配置路由器

z释然z 释然IT杂谈 2023-04-23

加群交流在后台回复“加群”,添加小编微信,小编拉你进去


后台回复“724”获取入门资料




简介


paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。

由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持。因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。

此外,由于常见的交换机都支持ssh,那么使用paramiko控制交换机变成现实。



安装


pip 安装方式
pip install paramiko
如果没有安装pycrypto,则需要先安装pycrypto库



使用


paramiko提供了多种连接方式,在此我们使用ssh的方式连接交换机并发送命令以实现配置交换机的目的。



实验环境


eve-ng模拟器中桥接本地计算机来做本实验,拓扑如下:

这里写脚本只演示登录R1,首先给R1做初始化,配置如下:

初始化1.配置hostname 和domain-namehostname R1ip domain-name shiranit.com
2.产生密钥,产生1024位的密钥crypto key generate rsa general-keys modulus 1024
3.配置sssh的信息会话超时时间ip ssh time-out 120最大认证次数ip ssh authentication-retries 3启用ssh和telnet认证line vty 0 4 transport input ssh telnet login local
4.本地认证用户 enable passwod shiran123 username shiran privilege 15 password shiran123 PS: privilege 15这么设置是为了免去登陆时输入enable密码



python脚本


# import 导入模块import paramikoimport time# 定义三个字符串类型的变量ip = '192.168.226.138'username = 'shiran'password = 'shiran123'# 开启SSH会话赋值给变量ssh_client = paramiko.SSHClient()# 开启可接收陌生的ssh服务会话ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False)#  开启交互式会话command = ssh_client.invoke_shell()print ('已经成功登陆路由器' + ip)# 向路由器发出命令command.send('configure terminal\n')command.send('interface loop 0\n')command.send('ip add 1.1.1.1 255.255.255.255\n')command.send('end\n')command.send('wr mem\n')# 延时5秒time.sleep(5)# 设置截屏长度并打印出来output = command.recv(65535).decode('ascii')print (output)# 退出ssh会话ssh_client.close


此段代码是使用ssh登陆路由器R1,并创建loopback 0 接口,配置ip为1.1.1.1/32,然后保存配置。

正常R1是只做了初始化,没有loopback 0接口的。

脚本演示如下:

路由器开启debug ip ssh ,方便看到ssh连接情况


根据上面视频可看出ssh成功连接到路由器的日志信息,以及loopback0添加成功的情况。测试python脚本成功,实验至此完成。


欢迎各位感兴趣的小伙伴一起交流学习,优化脚本,做出适合网工使用的小脚本。


【来稿说明】:

本公众号宗旨是一个公益性的平台,属于大家锻炼的平台,不能只展示我个人的,所以欢迎有才华的人士来稿。
大家写文档投稿,也需要占用一定的个人时间,且现在的生活节奏较快,能乐于分享,牺牲自己的宝贵时间,真的很难得。所以,小编决定根据个人经济情况及投稿文章质量,每次投稿,打赏的稿费定在5元-50元之间,请有兴趣者,不要介意钱太少,或者后续也可以采用赠送书籍的形式。

来稿邮箱:942511321@qq.com(也可后台菜单栏里添加小编微信)

来稿声明:须自己本人原创,否则后果自行承担。未在其他平台发布过。

END


猜您喜欢往期精选▼

简单的Python端口扫描工具制作

Python通过FTP备份华为交换机配置文件

有人靠"抢茅台"月入百万,脚本曝光,开源可用!

利用 Python 爬取了 37483 条上海二手房信息,我得出的结论是?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存